// 1.引入axios
import axios from "axios";

// //2.引入element ui中的message
import { Message } from 'element-ui'

// 引入路由实例
import router from '@/router'

// 创建axios
const serve = axios.create({
    // 设置接口前缀
    baseURL: " http://114.115.148.8:8066",
    // 设置超时时间
    timeout: 3000,
    // 设置请求头
    headers: {
        'Content-Type': 'multipart/form-data',

        'ApShop-Session-Id': 'd971fc9a2d0f5653b66c89ac5ba22fb0'
    }
})

// 定义一个变量 存路径
let path = "";

// 请求拦截器  发送请求的路上准备干点啥
serve.interceptors.request.use((config) => {
    // console.log(config, '接口信息');
    if (config.baseURL == 'http://114.115.148.8:8066/') {
        config.url = "/dev-api" + config.url
    }
    // 除了登录和注册 其余的接口都需要配置token字段请求
    if (config.url != 'adminAccount/login/submit') {
        config.headers.token = localStorage.getItem('ApShop-Session-Id')
    }
    // 每次请求的时候都先将url赋值给path
    path = config.url
    return config;
})

// 响应拦截器  如果数据请求成功了 干点啥？
serve.interceptors.response.use((res) => {
    // 判断请求成功的状态码 如果是200，将data返回出去
    if (res.status === 200) {
        if (res.data.error == 0) {
            return res.data;
        } else {
            Message({
                message: res.data.message,
                type: 'error'
            });
            return res.data
        }

    } else {
        console.log('响应拦截', res);
        // 如果是别的错误 直接弹出去
        Message({
            message: '请求失败',
            type: 'error'
        });
    }
})

// 封装post
export function postData(url, method, data) {
    return new Promise((resolve) => {
        serve({
            method,
            url,
            data
        })
            .then((res) => {
                resolve(res)
            })
            .catch(() => {
                // Message({
                //     message: '系统错误',
                //     type: 'error'
                // });
            })
    })
}
// 封装get
export function getData(url, method, data) {
    return new Promise((resolve) => {
        serve({
            method,
            url,
            params: data
        })
            .then((res) => {
                resolve(res)
            })
            .catch(() => {
                // Message({
                //     message: '系统错误',
                //     type: 'error'
                // });
            })
    })
}